347cac97d157e82251f5d912397812155dc330f2,java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/LambdaParametersTypeConversionDescriptor.java,LambdaParametersTypeConversionDescriptor,addApplyReference,#PsiExpression#,53

Before Change


        else if (GuavaFunctionConversionRule.GUAVA_FUNCTION.equals(qName)) {
          samMethodName = "apply";
        }
        else if (GuavaPredicateConversionRule.GUAVA_PREDICATE.equals(qName)) {
          samMethodName = "test";
        }
      }

After Change


    String samMethodName = null;
    PsiType type = expression.getType();
    if (type instanceof PsiClassType) {
      PsiClass resolvedClass = ((PsiClassType)type).resolve();
      if (resolvedClass != null) {
        final JavaPsiFacade javaPsiFacade = JavaPsiFacade.getInstance(expression.getProject());
        final GlobalSearchScope scope = resolvedClass.getResolveScope();
        if (InheritanceUtil.isInheritorOrSelf(resolvedClass, javaPsiFacade.findClass(GuavaSupplierConversionRule.GUAVA_SUPPLIER, scope), true)) {
          samMethodName = "get";
        }
        else if (InheritanceUtil.isInheritorOrSelf(resolvedClass, javaPsiFacade.findClass(GuavaFunctionConversionRule.GUAVA_FUNCTION, scope), true)) {
          samMethodName = "apply";
        }
        else if (InheritanceUtil.isInheritorOrSelf(resolvedClass, javaPsiFacade.findClass(GuavaPredicateConversionRule.GUAVA_PREDICATE, scope), true)) {
          samMethodName = "test";
        }
      }